課程資訊
課程名稱
軟體開發方法
Software Development Methods 
開課學期
111-2 
授課對象
管理學院  資訊管理學研究所  
授課教師
蔡益坤 
課號
IM5027 
課程識別碼
725 U3340 
班次
 
學分
3.0 
全/半年
半年 
必/選修
選修 
上課時間
星期三7,8,9(14:20~17:20) 
上課地點
管二302 
備註
部份週次之週三6有實習課,地點同上課教室。
限學士班三年級以上
總人數上限:50人
外系人數限制:4人 
 
課程簡介影片
 
核心能力關聯
核心能力與課程規劃關聯圖
課程大綱
為確保您我的權利,請尊重智慧財產權及不得非法影印
課程概述

This course introduces a selection of theories and practices that, we believe, will enhance the student's ability in developing correct and high-quality software. The view taken here is that of an engineer (programmer, software engineer, or software architect) and hence the focus of the course is primarily on the technical aspects of software development process. We will start with an overview of the typical software development process and relevant issues and then study in greater details some fundamental elements of software modeling, design, and verification, along with several software productivity tools and development practices. To practice applying these methods and tools, we will carry out a term project that involves the development of a large Web application. We will also study Web application programming techniques and security, to better prepare for the project. 

課程目標
The goal of this course is to acquaint the students with some of the well-used methods and tools for practical software development as well as some fundamentals of software verification, so as to prepare them for a career in software development. 
課程要求
The students are assumed to have taken Object-Oriented Programming and Database Management. 
預期每週課後學習時數
About 6 hours. 
Office Hours
每週三 13:30~14:00
每週二 13:30~14:00 備註: Or appointment by email. 
指定閱讀
See the course wiki site: http://im.ntu.edu.tw/~tsay/dokuwiki/doku.php?id=courses:sdm2023:main 
參考書目
Class notes and selected readings. 
評量方式
(僅供參考)
 
No.
項目
百分比
說明
1. 
Homework 
10% 
There are five homework assignments. 
2. 
Participation 
10% 
 
3. 
Term Project 
50% 
Details will be provided on the course wiki site: http://im.ntu.edu.tw/~tsay/dokuwiki/doku.php?id=courses:sdm2023:main 
4. 
Final Exam 
30% 
 
 
針對學生困難提供學生調整方式
 
上課形式
以錄音輔助
作業繳交方式
延長作業繳交期限
考試形式
延後期末考試日期(時間)
其他
由師生雙方議定
課程進度
週次
日期
單元主題
第1週
2/22  Introduction; Productivity Tools: Version Control with Git 
第2週
3/1  Software Modeling: An Overview of UML; Term Project: Initial Discussions 
第3週
3/8  Software Modeling: UML Diagrams; Productivity Tools: Chrome DevTools 
第4週
3/15  Software Implementation: Web Programming Pearls 
第5週
3/22  Term Project: Proposal Presentations; Software Development Practice: Design Document 
第6週
3/29  Software Modeling: Domain Modeling 
第7週
4/5  Holiday 
第8週
4/12  Term Project: First Preliminary Demos; Software Security: Web Application Security 
第9週
4/19  Productivity Tools: Debuggers; Software Design: Design Patterns 
第10週
4/26  Software Design: Design Patterns 
第11週
5/3  Software Development Practice: Agile Development in Practice 
第12週
5/10  Term Project: Second Preliminary Demos; Midterm Discussions 
第13週
5/17  Software Verification: Testing 
第14週
5/24  Formal Specification: Formal Logic and Correctness Requirements; Formal Verification: Verification of Programs with Frama-C and ACS 
第15週
5/31  Term Project: Final Presentations 
第16週
6/7  Final Exam